package tech.aistar.corejava.day07.singleton;

/**
 * @Author:         lya
 * @Description:   本类的作用描述:懒汉模式
 * 在多线程并发环境下,会出现线程不安全现象,有可能会产生多个实例!
 * @param
 * @return:
 * @CreateDate:    2019/7/23 15:59
 * @Version:       1.0
*/
public class LazyMyDataSource {
    //2.定义一个本类唯一实例

    //static赋值机会只有一次 - jvm加载类的时候
    private static LazyMyDataSource instance = null;

    //1.私有化构造
    private LazyMyDataSource(){
        //一般是用来进行资源的一些配置
        //需要消耗一定的时间
        System.out.println("实例化...");
    }

    //定义一个公开的静态方法来返回这个类的唯一实例
    //synchronized - 锁 - 整个方法都给锁住
    public static synchronized LazyMyDataSource getInstance(){
        return instance == null ? instance = new LazyMyDataSource():instance;
    }
}
